﻿using System.Windows.Forms;
using AiFrame.InterfaceLib.MVP;

namespace AiFrame.Base.Core.MVP
{
    /// <summary>
    /// Represents the main view.
    /// </summary>
    public interface IMainWindowView: IMainMenu
    {
        /// <summary>
        /// Returns the content control which is the container
        /// for all sub windows.
        /// </summary>
        /// <returns>The control.</returns>
        Control GetContentPanel();

        /// <summary>
        /// Returns the control which manages the names of the
        /// sub windows.
        /// </summary>
        /// <returns></returns>
        Control GetWindowCaptionControl();

        /// <summary> 
        /// Löscht alle Container, in denen die Fenster angezeigt wurden.
        /// </summary>
        void ClearContainers();

        /// <summary>
        /// Fügt einen Container für Fenster hinzu und gibt das Control zurück.
        /// </summary>
        /// <returns></returns>
        void AddContainer(IWindow wnd);

        /// <summary>
        /// Liefert die Navigationsleiste zurück.
        /// </summary>
        /// <returns></returns>
        INavigationBar GetNavBar();

        /// <summary>
        /// Setzt den Status für das Online-Feld.
        /// </summary>
        /// <param name="message"></param>
        void SetOnlineStatusText(string message);

        /// <summary>
        /// Setzt das Standard-Feld für den Status.
        /// </summary>
        /// <param name="message"></param>
        void SetStatusText(string message);

        /// <summary>
        /// Schließt das Fenster.
        /// </summary>
        void Close();
    }
}